#ifndef EDITORCORE_IDOCUMENT_H
#define EDITORCORE_IDOCUMENT_H

#include <string>
#include "Drawing/IDrawer.h"
#include "EditorCore/IEntity.h"
#include "EditorCore/History.h"
#include "EditorCore/Selector.h"

namespace editor_core {

	class IDocument
	{
	public:
		virtual ~IDocument() {}

		virtual void Save( const std::string& filePath ) const = 0;

		virtual IEntity* GetRootEntity() const = 0;

		virtual void Draw( drawing::IDrawer* drawer ) const = 0;

		virtual History* GetHistory() const = 0;
		virtual Selector* GetSelector() const = 0;
	};
}

#endif
